The present invention relates to image processing, and more particularly to compressing video files.
Known video compression techniques include intraframe (i.e., spatial) compression and interframe (i.e., temporal) compression that are applied within individual video files. An intraframe compression technique compresses individual frames by coding areas of similar color and texture with fewer bits than the original image. An interframe compression technique compresses a sequence of frames together by eliminating redundant visual data across multiple frames and storing only what has changed from one frame to the next. Three types of compressed frames are used in known video compression of groups of pictures: (1) I-frames (i.e., key frames or base frames; also known as intra-coded pictures), (2) P-frames (i.e., predicted frames), and (3) B-frames (i.e., bi-directional frames). I-frames include all the necessary data to re-create a complete image. An I-frame stands by itself, without requiring data from other frames in the group. An I-frame is, in effect, a fully specified picture like a conventional static image file. P-frames include only the changes in the image from the previous frame. For example, in a scene in which a car moves across a stationary background, only the car's movements need to be encoded in a P-frame. The encoder does not need to store the unchanging background pixels in the P-frame, thereby saving space. P-frames are also known as delta frames. Each B-frame is encoded based on differences between the B-frame and both the preceding and the following frames. P-frames and B-frames hold only part of the image information, so they need less space to store than an I-frame and thus improve video compression rates.
In known video compression algorithms, the time to compress/decompress and compression efficiency are conflicting parameters. Known video compression algorithms that have higher compression efficiencies than other algorithms also take more time to compress/decompress. Furthermore, video compression algorithms that have lower compression efficiencies than other algorithms take less time to compress/decompress.